/**
 * 弹层组件位置类型
 *
 * @format
 */

export type ModelPosition = 'center' | 'top' | 'bottom' | 'left' | 'right';

/**
 * 弹层组件尺寸类型
 */
export type ModelSize = 'small' | 'medium' | 'large';

/**
 * 弹层组件Props接口
 */
export interface ModelProps {
  /**
   * 是否显示弹窗（支持v-model）
   * @default false
   */
  modelValue: boolean;

  /**
   * 弹窗标题
   * @default ''
   */
  title?: string;

  /**
   * 弹窗宽度，可以是数值或百分比
   * @default ''
   */
  width?: string;

  /**
   * 弹窗高度，可以是数值或百分比
   * @default ''
   */
  height?: string;

  /**
   * 弹窗位置
   * @default 'center'
   */
  position?: ModelPosition;

  /**
   * 是否全屏显示
   * @default false
   */
  fullscreen?: boolean;

  /**
   * 是否显示关闭按钮
   * @default true
   */
  showClose?: boolean;

  /**
   * 是否可以通过点击遮罩关闭弹窗
   * @default true
   */
  closeOnClickMask?: boolean;

  /**
   * 动画持续时间，单位毫秒
   * @default 300
   */
  duration?: number;

  /**
   * 弹窗尺寸
   * @default 'medium'
   */
  size?: ModelSize;

  /**
   * 弹窗层级
   * @default 2000
   */
  zIndex?: number;

  /**
   * 自定义类名
   * @default ''
   */
  customClass?: string;

  /**
   * 是否将弹窗内容插入至body元素上（H5）
   * @default false
   */
  appendToBody?: boolean;
}
